<!DOCTYPE html>
<html lang='en'>

<head>
    <meta charset='UTF-8'>
    <meta http-equiv='X-UA-Compatible' content='IE=edge'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <title>Document</title>
    <script src='../../vue.js'></script>
</head>

<body>
    <div id='app'>
        <button @click="sortType=1">升序</button>
        <button @click="sortType=2">降序</button>
        <input type="text" v-model="search">
        <ul>
            <li v-for="item in newperson">
                {{item.name}}--{{item.age}}
            </li>
        </ul>
    </div>
    <script>
        Vue.config.productionTip = false;
        const vm = new Vue({
            el: '#app',
            data() {
                return {
                    sortType:0,
                    search: '',
                    person: [
                        { id: '001', name: 'zhanghang', age: 15 },
                        { id: '002', name: 'panyang', age: 18 },
                        { id: '003', name: 'liyunhaii', age: 28 },
                        { id: '004', name: 'laobiao', age: 6 },
                    ]
                }
            },
            computed:{
              newperson(){
                const filterResult=this.person.filter((item)=>{
                    return item.name.includes(this.search)
                })
                return filterResult.sort((a,b)=>{
                    switch(this.sortType){
                        case 1:
                            return a.age-b.age;
                        case 2:
                            return b.age-a.age    
                    }
                })
              }
            }
        })
    </script>
</body>

</html>